#ifndef M_DEBUG_H
#define M_DEBUG_H

#if defined (__cplusplus)
extern "C" {
#endif

#include <stdio.h>
#include <stdarg.h>
#include <jni.h>
#include <android/log.h>

// extern bool MSDebug;
#define MINICAP_VERSION "0.0.5"
#define MINITOUCH_VERSION "0.0.5"
#define LOG_MINITOUCH_TAG "MaingT"
#define LOG_MINICAP_TAG "MaingC"
#define DEBUG_INFO_TYPE 1

void enable_debug_info(bool enable);
void print_debug_info(const char* file, int line, const char* func, const char* fmt, ...);
void enable_touch_debug_info(bool enable);
void print_touch_debug_info(const char* file, int line, const char* func, const char* fmt, ...);

#define LOGOPEN 1

#if(LOGOPEN==1)
    #define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__)
    // #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, "[%s](%d):%s->%s", __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__)
    // #define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "[%s](%d):%s->%s", __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__)
    // #define LOGW(...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, "[%s](%d):%s->%s", __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__)
    // #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, "[%s](%d):%s->%s", __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__)
    // #define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, "[%s](%d):%s->%s", __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__)
#else
    #define LOGD(...) NULL
    #define LOGI(...) NULL
    #define LOGW(...) NULL
    #define LOGE(...) NULL
    #define LOGV(...) NULL
#endif

#if defined (__cplusplus)
}
#endif

#endif